package com.crm.util;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

/**
 * 授权码
 * */
public class Authorization {
	
	//获取授权码
	private static final String AUTHORCODE = PropertyReader.loadPropertyParam("data.properties", "authorization");
	//解密授权码
	private static final String AUTHOR = Constants.AURIZTION.decryptString(AUTHORCODE);
	//分割
	private static final String[] authorarr = AUTHOR.split("\\|");
	
	/**
	 * 验证是否过期
	 * true没过期false过期
	 * */
	public static boolean isOutOfTime() throws Exception{
		boolean result = true;
		try {
			
			//获取过期时间
			String endtime = authorarr[1];
			if (endtime.equals("*")){
				//无限时间
				return true;
			}
			//如果不是无限时间判断是否过期
			//获取当前时间
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			/*Date date = new Date();*/
			String nowtime = getWebsiteDatetime();// sdf.format(date);
			//转换成毫秒数
			Long endTimeInMillis = sdf.parse(endtime).getTime();
			Long nowTimeInMillis = sdf.parse(nowtime).getTime();
			//判断是否过期(过期时间小于当前时间)
			if (endTimeInMillis < nowTimeInMillis) {
				result = false;
			}
		}catch(Exception e) {
			 result = false;
		}
	
		return result;
	}
	
	/**
	 * 验证人数是否超标
	 * true没超false超了
	 * */
	public static boolean isOutOfPeople(int nowPeople){
		boolean result = true;
		 try {
			//获取授权总人数
				String allPeople = authorarr[0];
				if (allPeople.equals("*")){
					//无限人数
					return true;
				}
				//如果不是无限人数,判断人数是否超标
				if (Integer.parseInt(allPeople) < nowPeople) {
					result = false;
				}
		 }catch(Exception e) {
			 result = false;
		 }
		return result;
	}
	
	public static void main(String[] args) {
		String code = Constants.AURIZTION.encryptString("*|2019-10-20");
		System.out.println(code);
		System.out.println(getWebsiteDatetime() + " [百度]");
	       
	}
	
	
	 

	    /**
	     * 获取指定网站的日期时间
	     * 
	     * @param webUrl
	     * @return
	     * @author SHANHY
	     * @date   2015年11月27日
	     */
	    private static String getWebsiteDatetime(){
	        try {
	        	String[] urls = {"http://www.baidu.com","http://www.taobao.com","http://www.ntsc.ac.cn","http://www.360.cn", "http://www.beijing-time.org"};
	        	for(String webUrl:urls) {
	        		try {
	        		     URL url = new URL(webUrl);// 取得资源对象
	 		            URLConnection uc = url.openConnection();// 生成连接对象
	 		            uc.connect();// 发出连接
	 		            long ld = uc.getDate();// 读取网站日期时间
	 		            Date date = new Date(ld);// 转换为标准时间对象
	 		            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);// 输出北京时间
	 		            return sdf.format(date);
	        		}catch (MalformedURLException e) {
	    	            e.printStackTrace();
	    	        } catch (IOException e) {
	    	            e.printStackTrace();
	    	        }
	        	}
	        	
	        } catch(Exception e) {
    		}
	        return null;
	    }
	
}
